export type NodeType = 'page' | 'button' | 'input' | 'container' | 'grid' | 'tabs' | 'custom'

export type EventActionType = 'alert' | 'http' | 'navigate' | 'custom'

export interface EventAction {
  type: EventActionType
  params: Record<string, any>
}

export interface CustomComponentMeta {
  name: string
  label: string
  icon?: string
  props?: Record<string, any>
  events?: Record<string, EventAction[]>
}

export interface Node {
  id: string
  type: NodeType
  component?: string
  props: Record<string, any>
  events?: {
    [eventName: string]: EventAction[]
  }
  children?: Node[]
}
